var md5 = require('./md5.js')
var app = getApp()


 function checkFileType(suffix) {
    var type="";
    switch (suffix) {
        case 'mp4':
            type = 'mp4';
            break;
        case 'ppt':
        case 'pptx':
        case 'doc':
        case 'docx':
        case 'pdf':g
            type = 'office';
            break;
        case 'jpg':
        case 'jpeg':
        case 'png':
        case 'bmp':
        case 'gif':
            type = 'pic';
            break;
    }
    return type;
}
//又拍云获取sign方法封装
function getSign(remotePath,callBack) {
    var signatureUrl=app.globalData.apiBase+'/blog/countSignature'
    var bucket='deli-ai'
    if (!remotePath) {
        remotePath = remotePath.split('//')[1]
    }
    var opts = {
        'save-key': remotePath,
        bucket: bucket,
        expiration: Math.round(new Date().getTime() / 1000) + 3600
    }
    var policy = Base64.encode(JSON.stringify(opts))
    var data = ['POST', '/' + bucket,policy].join('&')
    var signature=''
    wx.request({
        url: signatureUrl,
        data: {
            data: data
        },
        success: function (res) {
            callBack(res.data.respResult)
        },
        fail: function (err) {
            console.log("又拍云获取签名失败"+err)
        }
    })
}

//时间戳转换成日期时间


function date_time(val) {


    var date = new Date(parseInt(val))


    //月份为0-11，所以+1，月份小于10时补个0
    var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;


    var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();


    var hour = date.getHours();


    var minute = date.getMinutes();


    var second = date.getSeconds();


    var theTime = date.getFullYear() + "-" + month + "-" + currentDate + " " + hour + ":" + minute + ":" + second;

    return theTime ;


}
function date_time_noTime(val) {


    var date = new Date(parseInt(val))


    //月份为0-11，所以+1，月份小于10时补个0
    var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;


    var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();


    var hour = date.getHours();


    var minute = date.getMinutes();


    var second = date.getSeconds();


    var theTime = date.getFullYear() + "-" + month + "-" + currentDate;

    return theTime ;


}
const formatNumber = n => {
    n = n.toString()
    return n[1] ? n : '0' + n
}

function ajax(url, method, data, callBack) {
    var timestamp = Date.parse(new Date())
    wx.request({
        url: url,
        method: method,
        data: data,
        header: {
            'content-type': 'application/json',
            'clientType': 'WX',
            'Authorization': 'Bearer ' + wx.getStorageSync("token"),
            'timestamp': timestamp,
            'sign': md5.hexMD5('timestamp=' + timestamp + wx.getStorageSync("token")),
            'signType': 'MD5'
        },
        success: (res) => {
            if (res.data.respCode === '0000') {
                callBack(res.data.respResult,res.data.respCode)
            }else if(res.data.respCode === '4001'){ //未授权登录
                console.log("未授权登录")
                wx.clearStorage()
                  wx.reLaunch({
                      url:'/pages/launch/launch'
                  })
            }else{
                callBack(res.data.respMessage,res.data.respCode)
            }
        },
        fail: (error) => {
            console.log(error)
        }
    })
}

/**
 * 替换某段文字中相应的字符
 * @param str
 * @param f
 * @param e
 * @returns {void | string | never}
 */
function myReplace(str,f,e){//吧f替换成e
    var reg=new RegExp(f,"g"); //创建正则RegExp对象
    return str.replace(reg,e);
}
/**
 * <pre>
 * @param arr
 * @returns {Array} 如果arr中的元素存在空字符串''，则去掉该空字符串
 * </pre>
 */
function trimSpace(array){
    for(var i = 0 ;i<array.length;i++)
    {
        if(array[i] == "" || array[i] == null || typeof(array[i]) == "undefined")
        {
            array.splice(i,1);
            i= i-1;
        }
    }
    return array;
}
/* eslint-disable */
var Base64 = {
    // private property
    _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
    // public method for encoding
    encode: function (input) {
        var output = ''
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4
        var i = 0
        input = Base64._utf8_encode(input)
        while (i < input.length) {
            chr1 = input.charCodeAt(i++)
            chr2 = input.charCodeAt(i++)
            chr3 = input.charCodeAt(i++)
            enc1 = chr1 >> 2
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)
            enc4 = chr3 & 63
            if (isNaN(chr2)) {
                enc3 = enc4 = 64
            } else if (isNaN(chr3)) {
                enc4 = 64
            }
            output = output +
                this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
                this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4)
        }
        return output
    },
    // public method for decoding
    decode: function (input) {
        var output = ''
        var chr1, chr2, chr3
        var enc1, enc2, enc3, enc4
        var i = 0
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '')
        while (i < input.length) {
            enc1 = this._keyStr.indexOf(input.charAt(i++))
            enc2 = this._keyStr.indexOf(input.charAt(i++))
            enc3 = this._keyStr.indexOf(input.charAt(i++))
            enc4 = this._keyStr.indexOf(input.charAt(i++))
            chr1 = (enc1 << 2) | (enc2 >> 4)
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2)
            chr3 = ((enc3 & 3) << 6) | enc4
            output = output + String.fromCharCode(chr1)
            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2)
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3)
            }
        }
        output = Base64._utf8_decode(output)
        return output
    },
    // private method for UTF-8 encoding
    _utf8_encode: function (string) {
        string = string.replace(/\r\n/g, '\n')
        var utftext = ''
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n)
            if (c < 128) {
                utftext += String.fromCharCode(c)
            } else if ((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192)
                utftext += String.fromCharCode((c & 63) | 128)
            } else {
                utftext += String.fromCharCode((c >> 12) | 224)
                utftext += String.fromCharCode(((c >> 6) & 63) | 128)
                utftext += String.fromCharCode((c & 63) | 128)
            }
        }
        return utftext
    },
    // private method for UTF-8 decoding
    _utf8_decode: function (utftext) {
        var string = ''
        var i = 0
        var c = c1 = c2 = 0
        while (i < utftext.length) {
            c = utftext.charCodeAt(i)
            if (c < 128) {
                string += String.fromCharCode(c)
                i++
            } else if ((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i + 1)
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63))
                i += 2
            } else {
                c2 = utftext.charCodeAt(i + 1)
                c3 = utftext.charCodeAt(i + 2)
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63))
                i += 3
            }
        }
        return string
    }
};

module.exports = {
    date_time: date_time,
    date_time_noTime: date_time_noTime,
    ajax: ajax,
    getSign:getSign,
    myReplace:myReplace,
    checkFileType:checkFileType,
    trimSpace:trimSpace
};
